import {type App } from 'vue';

// 定义 options 的类型
interface TranslateOptions {
  [key: string]: any; // 允许任意嵌套的键值对
}

export default {
  install: (app: App, options: TranslateOptions) => {
    // 注入一个全局可用的 $translate() 方法
    app.config.globalProperties.$translate = (key: string): any => {
      // 获取 `options` 对象的深层属性
      // 使用 `key` 作为索引
      return key.split('.').reduce((o, i) => {
        if (o) return o[i];
        return undefined; // 防止未定义值导致错误
      }, options);
    };
  }
};